//
// Created by root on 6/22/17.
//

#ifndef FUNNY_MENU_H
#define FUNNY_MENU_H

#include <gtk/gtk.h>
#include "gdkkeysyms.h"  /* for GDK key values */

#include "editor.h"
#include "dialog.h"
#include "filebuffer.h"
#include "statusbar.h"
#include "settings.h"
// #ifdef HAVESOURCEVIEW
#include "sourceview.h"
// #endif

/* general functions */
GtkWidget *create_menubar (FunnyWindow *app, GtkAccelGroup *mainaccel);
void help_about (FunnyWindow *app);

/* menu callbacks */
void menu_file_new_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_file_open_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_file_save_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_file_saveas_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_file_close_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_file_quit_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_edit_undo_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_edit_redo_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_edit_copy_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_edit_cut_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_edit_paste_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_edit_delete_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_edit_selectall_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_edit_deselectall_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_edit_find_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_edit_replace_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_edit_goto_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_edit_preferences_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_showtb_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_font_select_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_status_clear_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_status_properties_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_status_bigredbtn_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_tools_indent_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_tools_unindent_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_tools_indent_fixed_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_tools_unindent_fixed_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_tools_toupper_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_tools_tolower_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_tools_totitle_activate (GtkMenuItem *menuitem, FunnyWindow *app);
void menu_help_about_activate (GtkMenuItem *menuitem, FunnyWindow *app);

#endif //FUNNY_MENU_H
